﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Word=Microsoft.Office.Interop.Word;

namespace MyWordAddIn
{
    /// <summary>
    //Browser 意为浏览，即浏览对象
    //WdBrowseTarget.wdBrowseField 这个是域对象
    //WdBrowseTarget.wdBrowseHeading 这个是标题对象
    //Browser 对象的Next和Previous方法是在指定的Target对象间 进行切换 
    /// </summary>
    public class WordBrowser
    {
        Word.Application app;
        public WordBrowser(Word.Application app)
        {
            this.app = app;
        }

        public void GetBrowser(Message msg)
        {


            Word.Range r = null;
            app.Browser.Target = Word.WdBrowseTarget.wdBrowseHeading;//赋值后调用Next 可以取到第一个符合条件的内容
            app.Browser.Next();
            r = app.Selection.Paragraphs.First.Range;
            msg.AddMsg(r);

            //获取第二个符合的标题
            app.Browser.Next();
            r = app.Selection.Paragraphs.First.Range;
            msg.AddMsg(r);
        }

        public void LoopBrowser(Message msg)
        {
            Word.Range r = null;
            app.Browser.Target = Word.WdBrowseTarget.wdBrowseHeading;//赋值后调用Next 可以取到第一个符合条件的内容

            int endIndex = app.ActiveDocument.Paragraphs.Last.Range.End;//内容的结束一行
            int preStart = 0;
            int preEnd = 0;
            while (true)
            {
                app.Browser.Next();//获取下一个标题
                r = app.Selection.Paragraphs.First.Range;
               
                if (r.Start==preStart && r.End==preEnd)
                {
                    break;
                }

                msg.AddMsg(r);
                preStart = r.Start;
                preEnd = r.End;

                System.Threading.Thread.Sleep(100);                
            }
        }
    }
}
